home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0"?>
-
- <bindings id="checkboxBindings"
- xmlns="http://www.mozilla.org/xbl"
- xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
- <binding id="checkbox" display="xul:button">
- <implementation>
- <property name="checked">
- <getter>
- var image = this.getElementByAttribute("cbattr", "image");
- if (image) {
- return image.hasAttribute("checked");
- }
- return false;
- </getter>
- <setter>
- var image = this.getElementByAttribute("cbattr", "image");
- if (image) {
- if (val)
- image.setAttribute("checked", "true");
- else image.removeAttribute("checked");
- }
- </setter>
- </property>
-
- <!-- Internal Implementation Methods -->
- <method name="getElementByAttribute">
- <parameter name="aAttributeName"/>
- <parameter name="aAttributeValue"/>
- <body>
- <![CDATA[
- var anonymousNodes = document.getAnonymousNodes(this);
- for (var i = 0; i < anonymousNodes.length; ++i)
- return this.recursiveAttributeSearch(anonymousNodes[i], aAttributeName, aAttributeValue);
- return null;
- ]]>
- </body>
- </method>
- <method name="recursiveAttributeSearch">
- <parameter name="aNode"/>
- <parameter name="aAttributeName"/>
- <parameter name="aAttributeValue"/>
- <body>
- <![CDATA[
- if (aNode) {
- if (aNode.getAttribute(aAttributeName) == aAttributeValue)
- return aNode;
-
- for (var i = 0; i < aNode.childNodes.length; ++i)
- return this.recursiveAttributeSearch(aNode.childNodes[i], aAttributeName, aAttributeValue);
- }
- return null;
- ]]>
- </body>
- </method>
- </implementation>
- <handlers>
- <handler event="command">
- <![CDATA[
- this.checked = !this.checked;
- ]]>
- </handler>
- </handlers>
- </binding>
-
- </bindings>
-
-